package com.lhs.config.redis;

// 点赞功能 Key 设计
public class RedisKeyConstants {
    // 文章点赞用户集合 (Set) - 用于判断用户是否点赞、获取点赞用户列表
    public static final String BLOG_LIKED_USERS = "blog:liked:users:%s"; // %s 为 postId
    // 文章点赞数 (String) - 用于快速获取点赞数
    public static final String BLOG_LIKE_COUNT = "blog:like:count:%s"; // %s 为 postId
    // 用户点赞文章记录 (Set) - 用于个人页面展示
    public static final String USER_LIKED_BLOGS = "user:liked:blogs:%s"; // %s 为 userId

    // 浏览计数 Key 设计 (String)
    public static final String BLOG_VIEW_COUNT = "blog:view:count:%s"; // %s 为 postId
    // 用户浏览记录 (HyperLogLog) - 用于去重统计和判断是否浏览过
    public static final String BLOG_VIEWED_USERS = "blog:viewed:users:%s"; // %s 为 postId

    // 防刷 Key 设计
    public static final String USER_LIKE_RATE_LIMIT = "rate:limit:like:%s:%s"; // %s 为 userId, %s 为 postId
    public static final String USER_VIEW_RATE_LIMIT = "rate:limit:view:%s:%s"; // %s 为 userId, %s 为 postId
    // 热点文章Key
    public static final String HOT_BLOG = "blog:hot:list";
    // 分布式锁 Key
    public static final String LOCK_BLOG_LIKE = "lock:blog:like:%s"; // %s 为 postId
    public static final String LOCK_BLOG_VIEW = "lock:blog:view:%s"; // %s 为 postId
    public static final String LOCK_BLOG_HOT = "lock:blog:hot"; // 热点文章更新锁
}
